Data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, as well as public data centers that are operated by entities as businesses. For example, some public data center operators provide network access, power, and secure installation facilities for hardware owned by various customers, while other public data center operators provide “full service” facilities that also include hardware resources made available for use by their customers. However, as the scale and scope of typical data centers has increased, the task of provisioning, administering, and managing the physical computing resources has become increasingly complicated.
The advent of virtualization technologies for commodity hardware has provided a partial solution to the problem of managing large-scale computing resources for many customers with diverse needs, allowing various computing resources to be efficiently and securely shared between multiple customers. For example, virtualization technologies such as those provided by VMWare, XEN, or User-Mode Linux may allow a single physical computing machine to be shared among multiple users by providing each user with one or more virtual machines hosted by the single physical computing machine, with each such virtual machine being a software simulation acting as a distinct logical computing system that provides users with the illusion that they are the sole operators and administrators of a given hardware computing resource, while also providing application isolation and security among the various virtual machines. Furthermore, some virtualization technologies are capable of providing virtual resources that span one or more physical resources, such as a single virtual machine with multiple virtual processors that actually spans multiple distinct physical computing systems.
While the availability of data centers and virtualization technologies has provided various benefits, various problems still exist. For example, one problem that arises in the context of data centers that virtually or physically host large numbers of applications for a set of diverse customers involves providing network isolation for the applications hosted for each customer, such as to allow communications between the computing systems executing a customer's applications while restricting undesired communications between those computing systems and other computing systems (e.g., computing systems hosted for other customers, computing systems external to the data center, etc.). One traditional approach to providing network isolation in such situations has focused on providing dedicated physical networks to each customer, such as a physical network that includes multiple computing systems interconnected via one or more networking switch, hub and/or bridge devices. Such dedicated networks may provide the desired network isolation for the computing systems of each customer, but come at considerable cost in terms of network design, implementation, and provisioning. In particular, changes to the number and/or type of computing systems deployed by each customer may entail significant changes to the physical networking infrastructure used to connect those systems. Such problems may be exacerbated in the context of virtual hosting environments, where hardware virtualization allows for highly dynamic, flexible reconfiguration of computing environments. Providing dedicated physical networks to each customer in a virtual hosting environment may accordingly eliminate many of the benefits of virtual hosting, such as the ability to dynamically reconfigure the computing environment to meet customer demand, data center administrative needs, etc.
Thus, it would be beneficial to provide techniques that allow intercommunications between computing systems to be dynamically configured, as well as to provide other benefits.